/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package view;

import facade.facade;
import java.util.Date;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import vo.encuestaVO;

/**
 *
 * @author miguel.duran
 */
@ManagedBean(name = "ListaBean")
@SessionScoped
public class ListaBean {
    private List<encuestaVO> encuestasvo = null;
    private Date fecha_1 = new Date();
    private Date fecha_2 = new Date();
    private String Mensaje;
    private String DisableDescargar = "true";
    
    /** Creates a new instance of ListaBean */
    public ListaBean() {
        
    }

    public String consultar() {
        Long diferencia = fecha_2.getTime() - fecha_1.getTime();
        String resultado;
        Mensaje = "";
        
        if (diferencia < 0){
            Mensaje = "La fecha de inicio no puede ser mayor que la fecha de fin";
            resultado = null;
        } else {
            facade fachada = new facade();
            encuestasvo = fachada.ListaEncuestasRango(fecha_1, fecha_2);
            DisableDescargar = "true";
            if (!encuestasvo.isEmpty()){
                DisableDescargar = "false";
            }
            resultado = null;
        }

        return resultado;
    }
    
    public void postProcessXLS(Object document) {
	HSSFWorkbook wb = (HSSFWorkbook) document;
	HSSFSheet sheet = wb.getSheetAt(0);
	HSSFRow header = sheet.getRow(0);
	
        
	HSSFCellStyle cellStyle = wb.createCellStyle();  
	cellStyle.setFillForegroundColor(HSSFColor.GREY_50_PERCENT.index);
	cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
	Integer a = header.getPhysicalNumberOfCells();
        HSSFCell headerObservaciones = header.createCell(a);
        HSSFRichTextString text = new HSSFRichTextString("Observaciones");
        headerObservaciones.setCellValue(text);
        
	for(int i=0; i <= a;i++) {
            HSSFCell cell = header.getCell(i);
            cell.setCellStyle(cellStyle);
	}
        
        for(int i=1; i <= encuestasvo.size();i++) {
            HSSFRow fila = sheet.getRow(i);
            HSSFCell celda = fila.createCell(a);
            HSSFRichTextString texto = new HSSFRichTextString((encuestasvo.get(i-1)).getObservaciones());
            celda.setCellValue(texto); 
	}
        
    }

    

    public List<encuestaVO> getEncuestasvo() {
        return encuestasvo;
    }

    public void setEncuestasvo(List<encuestaVO> encuestasvo) {
        this.encuestasvo = encuestasvo;
    }

    public Date getFecha_1() {
        return fecha_1;
    }

    public void setFecha_1(Date fecha_1) {
        this.fecha_1 = fecha_1;
    }

    public Date getFecha_2() {
        return fecha_2;
    }

    public void setFecha_2(Date fecha_2) {
        this.fecha_2 = fecha_2;
    }

    public String getMensaje() {
        return Mensaje;
    }

    public void setMensaje(String Mensaje) {
        this.Mensaje = Mensaje;
    }

    public String getDisableDescargar() {
        return DisableDescargar;
    }

    public void setDisableDescargar(String DisableDescargar) {
        this.DisableDescargar = DisableDescargar;
    }
   
}
